メsAVe the Disk 1.5モ is a FreeWare system extension (aka INIT) which will
alleviate the following problems experienced by owners of 68k AV Macs:
1) Each time a sound channel is allocated (disposed) some information is read from (written to) the file メDSP Preferencesモ. Applications which follow Apple's recommendations create and destroy such a channel for each single sound they produce and thus slow down while they torture your harddisk. This problem becomes most obvious with games.
2) Some applications, which take advantage of the maximum resolution supported by a Quickdraw printer, mistakenly fall back to the low default resolution of 72 dpi.
Note that version 1.2 of the メSystem Enabler 088モ (and Systems 7.5 and 7.5.1) both fix the Resource Manager as well as the disk cache problems noticeable with older system software. These patches have been removed from メsAVe the Disk 1.5モ. Therefore this version should be used only on 68k AV Macs running System 7.1 with Hardware Update 3.0 installed (or plain System 7.5.x), where メsAVe the Disk 1.5モ will fix all remaining known bugs specific to the Quadra 660/840av.
Installation
Simply drop the メsAVe the Disk 1.5モ extension onto the icon of the closed system folder and let the Finder place it in the Extensions folder. Then restart your machine. メsAVe the Disk 1.5モ will load and display its icon while it installs itself during start-up.
Does it work?
The following is a simple way to test if メsAVe the Disk 1.5モ is operating properly. In the Finder select メPage Setupモ from the File menu and click outside the dialog box several times. The system beep should sound for each click. However disk activity should only occur prior to the first beep when the actual sound data is read from its resource inside the system file. There should be no disk hits for the repeated sounds. Compare this with the ongoing disk accesses before you installed メsAVe the Disk 1.5モ. Now you could enjoy one of your former favorite games without disk noise and without jerky delays degrading animation.
If it doesn't work
As メsAVe the Disk 1.5モ uses less than 2k of system memory plus the size of your メDSP Preferencesモ file (usually less than 0.5k), there should always be sufficient memory available.
Other possible problems include:
ム the ROM version is not 1917 (0x770), e.g. you are trying to install メsAVe the Disk 1.5モ on a non-AV Mac. Don't do that, メsAVe the Disk 1.5モ provides no benefits on non-AV Macs.
ム your メDSP Preferencesモ file is either corrupt or incompatible with the type of AV Mac (660/840) you are using and cannot be deleted. Unprotect or delete the file manually.
ム you have an obsolete version of the メSystem Enabler 088モ installed. メsAVe the Disk 1.5モ requires at least version 1.1, but was designed to work smoothly with the latest version 1.2 only, available with Hardware Update 3.0 from Apple. With System 7.5.x all the enhancements provided by the latest メSystem Enabler 088モ have been built into the system file itself.
ム the file メDSP Preferencesモ uses a newer format which メsAVe the Disk 1.5モ does not recognize. Since the format of this file is not documented (only internal system calls store/retrieve info) Apple is free to change it. There might be an updated version of メsAVe the Disk 1.5モ available or you could trash the newer prefs file and let メsAVe the Disk 1.5モ maintain the info in the older format. Try this at your own risk!
No icon will be displayed during start-up and no changes to the system will be made, if any of the above problems prevents proper installation.
I developed and tested メsAVe the Disk 1.5モ on my Centris/Quadra 660av running System 7.5.1, but it is known to work on a Quadra 840av, too. Some additional testing has been done using System 7.1 with メSystem Enabler 088モ version 1.2 as well as System 7.5. Although メsAVe the Disk 1.5モ has not caused me any trouble I'm not responsible for any (unlikely) problems you may experience.
Please note that メsAVe the Disk 1.5モ does not fix the problems with games which write to the (on the AV Macs nonexistent) Apple Sound Chip directly and therefore produce no sound at all. You should contact the publisher of such software and ask for a fix or update.
Feel free to contact me at the address given below if you encounter any problems related to メsAVe the Disk 1.5モ.
Known Problems
メsAVe the Disk 1.5モ works differently than the original system code, if the size of the preference data associated with a given selector changes. This should cause no trouble however, because the original code simply corrupts the prefs file :^)
If you experience problems with the Photoshop DSP plug-in, remember that to my knowledge all existing version of RamDoubler (latest version is 1.5.1) are incompatible with this plug-in. As far as I know メsAVe the Disk 1.5モ does not cause the freezes.
How does it work?ハハ(optional reading)
1)ハDSP Preferences
Two subfunctions of the DSPDispatch trap (0xABF5) access the file メDSP Preferencesモ inside the Preferences folder and cause the sound related disk hits (selector 0x121 to read info, 0x5F to update the info). Both subfunctions are replaced by entirely new routines modelled after the originals. The contents of thefile メDSP Preferencesモ are read into a relocatable block inside the system heap during start-up. Accesses to preference data just read the info from memory, update it in memory or grow the block and append new information. A shutdown handler will finally update the file on disk (if any info was added/updated) before you restart or shutdown your Macintosh. This should cause no problems as the メDSP Preferencesモ file is small (usually less than 500 bytes) and the updated information records past DSP performance data as an estimate for future uses. Thus it is no real problem if a system crash should keep the data from getting written back. The estimates used will just be slightly less accurate as they result from older measurements. Luckily new selector/information pairs are rarely added to the file. To further reduce the chance of problems in situations where the system heap cannot grow, the memory block used to cache preference data is slightly larger than the current file size to provide a reserve for additional data.
Another subfunction of the DSPDispatch trap is used to repeatedly read a resource of type 'dspf' from the メSystem Enabler 088モ (or the system file itself with System 7.5) and will DetachResource in order to return a non-resource handle to its caller. Thus the resource data is read from disk each time, still resulting in sound related disk trashing. Only sometimes the system's disk cache was able to prevent actual disk access. A head-patch to the DSPGetResource subfunction (0x124) will handle requests for resources of type 'dspf' and use HandToHand in order to copy the requested data into a new non-resource handle. The original resource handle is marked purgable so that its 4.5k can be reclaimed if the system runs out of memory (the resource will be reread from disk the next time it is accessed). For resource types other than 'dspf' and in case of any error the patch invokes the original ROM code. The ROM code seems to support an additional special resource file, which is examined if a request can't be satisfied by the currently open files. Although this feature appears to be currently unused, the fallback to the original routine should guarantee 100% compatibility.
If you want to trash your メDSP Preferencesモ file because it has grown too large, proceed as follows: restart your Mac and put the file into the trash before any sound is produced (except the usual noise at start-up). Hold down the SHIFT-key during start-up to prevent other extensions from accessing the Sound Manager before the Finder has been started, if required. Restart your Mac again, when the file has been trashed. After the first sound has been played the data kept in memory is updated and will be completely rewritten at shutdown (or prior to a restart) even if you trashed the prefs file.
2)ハPrinting Bug
Some applications, which support Quickdraw printing with resolutions higher than 72dpi, fail to querry the active printer driver correctly and thus only print at the 72dpi default resolution. This is partly due to an incorrectly written application, but the ROM code for locating the active printer resource file contains a logical error, which makes the System think that the printer resource file cannot be found. As a result it returns a built-in default table, which describes a printer only capable of 72dpi printing, instead of the table of all resolutions supported by the currently active printer.
The error in the ROM code is a reversed condition: if we have already found the printer resource file, then try to locate it using an alternate method (alias stored in System file). The correct behavior would be to try the alias, if the primary method (refNum of currently open printer resource file) failed.
A patch to UseResFile looks for this specific call from ROM and continues with the correct thread of code depending on the result of the call.
Many Thanks To...
Dave Schutz for the original icon (taken from his Colossal Icons collection). Otherwise メsAVe the Disk 1.5モ would have to go with the default icon for system extensions and would have no super hero to stand behind its noble aim.
Kurt Wiley for the modified icons which add the conformant look of a system extension to メsAVe the Disk 1.5モ.
Matt Gough and Brian Stroud who brought the original Resource Manager deficiencies to my attention and made me put my vague ideas about a solution to the sound problem into actual code. From their AV Speedup distribution I got to know that there was no point in waiting for a fix from Apple DTS.
Steve Kiene who suggested a simpler and more effective solution for the Resource Manager problems and inspired the addition of the now obsolete disk cache fix. Check out his メAV Turbo ROMモ control panel, if you want to see your AV Mac run faster than ever before (and you have 2 Megs of RAM to spare :-(). He provided some insights on the nature of the disk cache bug, too.
Malcolm Slaney from the ATG Perception Group who made the source to the DSP related application メVUMeterモ publicly available. The included headers shed some light onto the DSP trap interface and turned mysterious entities into comprehensible data structures.
Patrick C. Beard who placed his ShowIconFamily code in the public domain. He made the successful installation of メsAVe the Disk 1.5モ visible.
Legal Stuff
メsAVe the Disk 1.5モ is provided free of charge but remains copyright Michael Thies. It may not be sold for profit but may otherwise be distributed freely in unmodified form and complete with this unaltered documentation. It may be included with ShareWare or commercial products, if I have been informed of the intended bundling in advance and it is made clear that メsAVe the Disk 1.5モ itself comes free of charge and does not form part of the actual product sold.
メsAVe the Disk 1.5モ is provided in the hope that it will be useful but comes with absolutely no warranty.
It was developed with メTHINK C 7.0.4モ (free upgrade from 6.0.1) so parts of it may be Copyright Symantec Corporation.
Several terms used above are trademarks of their respective holders.
Version Historyハハ(condensed)
1.0ハハハミハ11/23/93ハハハハハInitial Version
1.1ハハハミハ11/25/93 ハ- fixed bug which could prevent access to prefs file
ハハ- UpdateGPBPrefFile subfunction will read prefs file into
ハハmemory, if GetGPBModes was never called before
ハハ- Resource Manager patches are more robust. Even in case of
ハハerrors no call to FlushFile should get accidently ignored.
ハハ- Icon gets displayed during start-up if installation
ハハsuccessful
ハハ- fine-tuned code
1.1.1ハミハ12/04/93 ハ- added compatibility with version 1.0 of the System Enabler
ハハ(additional work will be needed to prevent ALL disk
ハtrashing with the 1.0 Enabler)
ハハ- more work done at installation time => less resident code
1.2ハハ ハミハ12/05/93 - work around for 1.0 Enabler added: no more disk trashing
ハハ- no reliance on systems's disk cache with any Enabler
ハハ- resident code nearly back to old (v1.1) size :-(
1.2.1ハミハ12/07/93 ハ - create copy of 'dspf' resource in heap zone where resource
ハハwas loaded (application vs. system heap)
1.3ハハハミハ12/18/93 ハ- prefs file read at start-up => less resident code
ハハ- take full advantage of sys 7 file specs => even less code